cbuffer cbPerObject
{
    float4x4 TransformMatrix;
};

struct VS_IN
{
    float3 Vertex : POSITION;
    float3 Color : COLOR;
};

struct VS_OUT
{
    float3 Color : COLOR;
    float4 Pos : SV_Position;
};

VS_OUT VS(VS_IN vIn)
{
    VS_OUT vOut;
    vOut.Color = vIn.Color;
    vOut.Pos = mul(float4(vIn.Vertex, 1.0), TransformMatrix);
    return vOut;
}

float4 PS(VS_OUT pIn) : SV_Target
{
    return float4(pIn.Color, 1.0);
}

technique10 AxisRenderer
{
    pass P0
    {
        SetVertexShader(CompileShader(vs_4_0, VS()));
        SetGeometryShader(NULL);
        SetPixelShader(CompileShader(ps_4_0, PS()));
    }
}
